package com.maybach.core.ao;

import com.audi.dubbo.api.item.request.B2BCarRequest;
import com.audi.dubbo.api.item.response.impl.InduceErrorReq;
import com.maybach.common.model.ImportModuleDO;
import org.apache.poi.ss.usermodel.Row;

import java.util.List;
import java.util.Set;

/**
 * Created by pyshift on 16/3/14.
 */
public interface ImportCarAO {

    /**
     * 平行接口车 excel数据检验
     * @param row
     * @param sheetName
     * @param rowIndex
     * @param errorList
     * @param defaultType
     * @param defaultFuel
     * @param defaultSpec
     * @return
     */
    List<B2BCarRequest> excelDataCheckByParallel(Row row, String sheetName, int rowIndex, Set<String> errorList, int defaultType, int defaultFuel, int defaultSpec);

    /**
     * 中规车 excel数据检验
     * @param row
     * @param sheetName
     * @param rowIndex
     * @param errorList
     * @param defaultType
     * @param defaultFuel
     * @return
     */
    List<B2BCarRequest> excelDataCheckByChina(Row row, String sheetName, int rowIndex, Set<String> errorList, int defaultType, int defaultFuel);


    /**
     * 中规车 文件数据检验
     * @param row
     * @param sheetName
     * @param rowIndex
     * @param errorList
     * @param defaultType
     * @param defaultFuel
     * @return
     */
    List<B2BCarRequest> textDataCheckByChina(Row row, String sheetName, int rowIndex, Set<String> errorList, int defaultType, int defaultFuel);

    /**
     * 错误信息写入EXCEL中
     * 美规车格式
     * @param requests
     * @return
     */
    String writeExcelByExcelParallel(List<InduceErrorReq> requests);

    /**
     * 错误信息写入EXCEL中
     * 中规车格式
     * @param requests
     * @return
     */
    String writeExcelByExcelChina(List<InduceErrorReq> requests);

    /**
     * 错误信息写入EXCEL中
     * 美规车格式
     *
     * @param requests
     * @return
     */
    String writeExcelByExcelModule(ImportModuleDO importModuleDO, List<InduceErrorReq> requests);

    /**
     * 模板excel数据检验
     * @param row
     * @param rowIndex
     * @return
     */
    List<B2BCarRequest> excelExcelCheckByModule(ImportModuleDO importModuleDO, Row row, int rowIndex, int defaultType, int defaultFuel, int defaultSpec);


}
